package com.ktgj.flight.mapper;

import com.ktgj.flight.domain.Airport;
import com.ktgj.flight.vo.AirportVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 机场Mapper接口
 * 
 * @author ruoyi
 * @date 2021-08-30
 */
public interface AirportMapper
{
    /**
     * 查询机场
     * 
     * @param id 机场ID
     * @return 机场
     */
    public Airport selectAirportById(Long id);

    /**
     * 查询机场列表
     * 
     * @param airport 机场
     * @return 机场集合
     */
    public List<Airport> selectAirportList(Airport airport);

    /**
     * 查询启用的机场列表
     *
     * @return 机场集合
     */
    public List<Airport> queryAirportList();

    /**
     * 新增机场
     * 
     * @param airport 机场
     * @return 结果
     */
    public int insertAirport(Airport airport);

    /**
     * 修改机场
     * 
     * @param airport 机场
     * @return 结果
     */
    public int updateAirport(Airport airport);

    /**
     * 删除机场
     * 
     * @param id 机场ID
     * @return 结果
     */
    public int deleteAirportById(Long id);

    /**
     * 批量删除机场
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteAirportByIds(Long[] ids);

    /**
     *  查询热门机场
     * @param
     * @return 热门机场列表
     * */
    public List<AirportVO> selectAirportByRemenAirport();

    /**
     *  机场表搜索功能
     * @param airportName 机场名称
     * @return 机场列表
     * */
    public List<AirportVO> selectAirportByAirportName(String airportName);

    /**
     *  机场表搜索功能
     * */
    public List<AirportVO> selectAirportByAirport();

    /**
     * 查询机场列表(排序)
     * @param
     * @return 机场列表
     * */
    public List<Airport> selectAirport();

    /**
     * 根据城市名称查询对应机场经纬度
     * @param airportCityName 城市名称
     * @return 机场列表
     * */
    public List<Airport> selectAirportByAirportCityName(String airportCityName);

    Airport getAirPortNameByRirPortCode(@Param("airPortCode") String airPortCode);

    public String queryAirPortName(String airportId);

    /**
     * 根据机场名称获取机场三字码
     * @param airportName
     * @return
     */
    Airport getAirportInfoByAirportName(String airportName);

    /**
     * 模糊查询城市
     * @param airportCityName
     * @return
     */
    public List<Airport> selectAirportLike(String airportCityName);

    /**
     * 获取城市名称
     * */
    public List<Airport> selectAirportName(String airportCityId);

    public String queryAirportCity(String airportId);

    /**
     * 三字码获取机场名称
     * */
    public Airport airportName(String airportId);

    /**
     * 获取机场名称
     * */
    public Airport airportNameById(Long id);

    /**
     * 机票城市列表
     * */
    public List<Airport> cityList();
}
